您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

一种A10接口数据转换骨干网VPN数据的方法及系统

  • 申请号:CN201210385270.X 申请公布号: CN102868587B
  • 申请日: 2012-10-11 申请公布日: 2014-12-31
  • 申请(专利权)人: 专利代理机构: 北京君尚知识产权代理事务所(普通合伙)
  • 分类号:H04L12/46;H04L12/861

专利介绍

本发明涉及一种A10接口数据转换骨干网VPN数据的方法及系统,系统包括:数据接收模块、数据包排序模块、数据解析模块、数据封装模块和发送模块,步骤如下:1)接收到A10接口数据包之前,初始化包含GRE节点的哈希表;2)接收到A10接口数据包后,解析出源IP地址、目的IP地址和grekey,并将源IP地址、目的IP地址和grekey作为关键字在哈希表中查询是否有相应的GRE节点存在;3)通过提取存在GRE节点的数据包ppp负载帧得到用户的业务数据;4)对业务数据进行VPN封装,完成数据的转换。5)检查GRE节点的缓存链表中的缓存节点的包序号。本发明能够实现骨干网业务系统处理A10接口数据,可以使骨干网业务系统无需作任何修改便能兼容处理A10接口的数据。
1.一种A10接口数据转化骨干网VPN数据的方法,其步骤包括:1)接收到A10接口数据包之前,初始化包含GRE节点的哈希表,所述GRE节点关键字包括:源IP地址、目的IP地址和grekey、处理完后的包序号和缓存链表;2)接收到A10接口数据包后,解析出源IP地址、目的IP地址和grekey,并将所述源IP地址、目的IP地址和grekey作为关键字在所述哈希表中查询是否有相应的GRE节点存在;2-1)若不存在GRE节点,则新建GRE节点;2-2)对出现乱序或者重传的数据包进行缓存或丢弃,方法是:1若GRE节点上已处理完数据包的序号值加1后小于接收到数据包序号,说明出现乱序,则接收的数据包缓存在GRE节点缓存链表上;2若GRE节点上已处理完数据包的序号值加1后大于接收到数据包序号,说明出现重传,则丢弃当前接收的数据包;3如果GRE节点上已处理完数据包的序号值加1后等于接收到数据包序号,说明数据正常有序,继续处理;2-3)对正常有序传输的数据包继续处理;3)通过提取所述存在GRE节点的数据包PPP负载数据帧得到用户的业务数据;4)对所述业务数据进行VPN封装,完成数据的转换;5)检查GRE节点的缓存链表中的缓存节点的包序号,若是有序则处理该缓存节点的包;若不是则继续缓存,开始重新接收新的数据。
2.如权利要求1所述的A10接口数据转化骨干网VPN数据的方法,其特征在于,所述骨干网VPN所有数据中,在每个用户的数据建立两个GRE节点;在上行数据中,所述源IP地址为PCF地址,所述目的IP地址为PSDN地址;在下行数据中,所述源IP地址为PSDN地址,所述目的IP地址为PCF地址。
3.如权利要求1所述的A10接口数据转化骨干网VPN数据的方法,其特征在于,所述步骤3)PPP负载数据帧根据0x7e标志字节作为起始和结束标志。
4.如权利要求1所述的A10接口数据转化骨干网VPN数据的方法,其特征在于,所述PPP负载数据帧经过解压缩得到用户业务信息;所述PPP负载数据帧的压缩算法一般为MPPC、VJ压缩算法。
5.一种A10接口数据转化骨干VPN数据的系统,包括:用于接收A10接口数据的数据接收模块、数据包排序模块、数据解析模块、数据封装模块和用于发送转化后VPN数据的发送模块,其特征在于,所述数据包排序模块根据接收到的数据包序号进行数据包的排序;对用户的上行和下行的第一个数据包新建GRE节点或对出现乱序或重传的数据包进行缓存或丢弃;所述数据解析模块用于提取存在GRE节点的数据包PPP负载数据帧得到用户的业务数据;所述数据封装模块用于提取出的用户业务数据封装为骨干网的VPN数据的格式,所述数据封装模块中,用户的业务数据为一完整IP包,所述IP包由GRE层、网络层、链路层封装,所述网络层包括源IP地址和目的IP地址;所述GRE层包括grekey和包序号;所述数据包排序模块新建GRE节点时,将数据包的源IP和目的IP赋值给GRE节点的源IP和目的IP,将GRE层的grekey和包序号赋值给GRE节点的grekey和处理完的包序号;所述数据包排序模块对出现乱序或重传的数据包进行缓存或丢弃的方法是:1若GRE节点上已处理完数据包的序号值加1后小于接收到数据包序号,说明出现乱序,则接收的数据包缓存在GRE节点缓存链表上;1若GRE节点上已处理完数据包的序号值加1后大于接收到数据包序号,说明出现重传,则丢弃当前接收的数据包;2如果GRE节点上已处理完数据包的序号值加1后等于接收到数据包序号,说明数据正常有序,继续处理。技术领域
本发明涉及网络接口数据的转换,特别涉及一种CDMA2000核心网中A10接口数据转换为骨干网VPN接口数据的方法及系统。属于移动互联网领域。
背景技术
这几年移动通信迅猛发展,越来越多的用户选择使用移动设备连接网络,因此运营商迫切需要快速准确地了解移动用户的上网行为特点,通过对移动用户的上网行为分析,可以提供更好的增值业务。由于互联网的骨干网发展已经非常成熟,很多现有的业务系统都是基于互联网的骨干网接口实现的,无法兼容处理移动核心网的数据,尤其是CDMAxa02000核心网的数据。CDMA2000为三大3G标准之一,除传统的语音通信外,还支持高速数据业务。CDMA2000核心网可向移动用户提供基于简单IP的公网、专网接入业务和基于移动IP的公网、专网接入业务。基于移动IP的CDMA2000分组核心网络包括分组控制功能PCF(Packetxa0ControlFunction)、分组数据服务节点PDSNxa0Packetxa0Dataxa0Servingxa0Node)等,业务数据接口为A10接口。骨干网的虚拟专用网络VPN(Virtualxa0Privatexa0Network)数据的简单应用是在业务数据的网络层外直接封装GRE(Genericxa0Routingxa0Encapsulation,通用路由封装)协议,通过GRE隧道传输业务数据。A10接口为CDMA2000核心网的业务数据接口,A10接口采用GRE协议对二层PPP协议进行封装,PPP点到点协议又封装了经过压缩之后的业务数据。
发明内容
针对目前骨干网业务系统无法兼容处理移动核心网数据的问题,本发明的目的是实现了一种CDMA2000核心网的A10接口数据转换为骨干网VPN数据的方法及系统。为了达到上述目的,本发明针对骨干网业务系统的兼容性、灵活性等问题,通过分析CDMAxa02000核心网的A10接口数据,提取业务数据,重新设计封装格式,使之成为骨干网的标准的VPN应用,提供了一种CDMAxa02000核心网的A10接口数据转换为骨干网的VPN数据的方法及系统。本发明的主要技术内容为:一种A10接口数据转化骨干网VPN数据的方法,其步骤包括:1)接收到A10接口数据包之前,初始化包含GRE节点的哈希表,所述GRE节点关键字包括:源IP地址、目的IP地址和grekey、处理完后的包序号和缓存链表;2)接收到A10接口数据包后,解析出源IP地址、目的IP地址和grekey,并将所述源IP地址、目的IP地址和grekey作为关键字在所述哈希表中查询是否有相应的GRE节点存在;2-1)若不存在GRE节点,则新建GRE节点;2-2)对出现乱序或者重传的数据包进行缓存或丢弃;2-3)对正常有序传输的数据包继续处理;3)通过提取所述存在GRE节点的数据包ppp负载帧得到用户的业务数据;4)对所述业务数据进行VPN封装,完成数据的转换;5)检查GRE节点的缓存链表中的缓存节点的包序号,若是有序则处理该缓存节点的包;若不是则继续缓存,开始重新接收新的数据。所述对出现乱序或重传的数据包进行缓存或丢弃的方法是:1)若GRE节点上已处理完数据包的序号值加1后小于接收到数据包序号,说明出现乱序,则接收的数据包缓存在GRE节点缓存链表上;2)若GRE节点上已处理完数据包的序号值加1后大于接收到数据包序号,说明出现重传,则丢弃当前接收的数据包;3)如果GRE节点上已处理完数据包的序号值加1后等于接收到数据包序号,说明数据正常有序,继续处理。所述骨干网VPN所有数据中,在每个用户的数据建立两个GRE节点;在上行数据中,所述源IP地址为PCF地址,所述目的IP地址为PSDN地址;在下行数据中,所述源IP地址为PSDN地址,所述目的IP地址为PCF地址。所述步骤3)ppp负载数据帧根据0x7e标志字节作为起始和结束标志。所述PPP数据帧经过解压缩得到用户业务信息;所述PPP数据帧的压缩算法一般为MPPC、VJ压缩算法。本发明还提出一种A10接口数据转化骨干VPN数据的系统,包括:用于接收A10接口数据的数据接收模块、数据包排序模块、数据解析模块、数据封装模块和用于发送转化后VPN数据的发送模块,所述数据包排序模块根据接收到的数据包序号进行数据包的排序;对用户的上行和下行的第一个数据包新建GRE节点或对出现乱序或重传的数据包进行缓存或丢弃,对有序传输的数据包继续处理;所述数据解析模块用于提取所述存在GRE节点的数据包ppp负载帧得到用户的业务数据;所述数据封装模块用于提取出的用户业务数据封装为骨干网的VPN数据的格式。优选地,所述数据封装模块中,用户的业务数据为一完整IP包,所述IP包由GRE层、网络层、链路层封装。优选地,所述网络层包括源IP地址和目的IP地址;所述GRE层包括grekey和包序号。优选地,所述数据包排序模块新建GRE节点时,将数据包的源IP和目的IP赋值给GRE节点的源IP和目的IP,将GRE层的grekey和包序号赋值给GRE节点的grekey和处理完的包序号。优选地,所述数据包排序模块检查所述GRE节点的缓存链表中是否存在缓存节点,若存在并且缓存节点的包序号为之前处理完的包序号加1,则将数据传入数据解析模块继续处理;若不存在或者缓存节点的包序号不等于之前处理完的包序号加1,则转至数据接收模块接收新的数据。本发明的优点与积极效果由于互联网的骨干网的业务发展已经非常成熟,很多现有的业务系统都是基于互联网的骨干网接口数据实现,无法兼容处理移动核心网的数据。本发明所述方法只需将A10接口数据引入A10接口数据转换为VPN数据的系统,进行数据的预处理,预处理之后再引入骨干网业务系统,就可以实现骨干网业务系统处理A10接口数据。利用本发明,可以使骨干网业务系统无需作任何修改便能兼容处理A10接口的数据。
附图说明
图1是本发明A10接口数据转换骨干网VPN数据的系统所处网络位置示意图;图2是本发明A10接口数据转换骨干网VPN数据的方法中GRE节点及哈希表组织结构图;图3是本发明A10接口数据转换骨干网VPN数据的方法中封装完的VPN数据格式;图4是本发明A10接口数据转换骨干网VPN数据的方法中数据处理流程图;图5是本发明A10接口数据转换骨干网VPN数据的系统结构示意图。
具体实施方式
本发明的一实施例如下:一种A10接口数据转换为骨干网的VPN数据的方法,其步骤为:1)在系统启动时初始化包含GRE节点的哈希表,用于后续的哈希操作。2)收到A10接口数据时,从数据包中解析出网络层的源IP和目的IP,解析出GRE层的grekey和包序号。以源IP、目的IP和grekey作为关键字在哈希表中查询GRE节点。如果不存在,则新建GRE节点,转到步骤3)继续处理该数据包。如果已经存在,则查询GRE节点上的已处理完的包序号的值,如果该值加1小于当前接收的数据包的序号,说明出现乱序,将当前接收的数据包缓存在GRE节点的缓存链表上,暂不处理,返回步骤2);如果该值加1大于当前接收的数据包的序号,说明出现重传等现象,直接丢弃当前接收的数据包,返回步骤2);如果该值加1等于当前接收的数据包的序号,说明包有序接收,转到步骤3)继续处理该数据包。3)提取数据包的PPP负载进行处理。在PPP负载中以0x7e为标志搜索PPP数据帧。提取到一个完整的PPP数据帧之后,查看协议域。如果协议域标识为IP,则直接提取PPP数据帧的数据域,作为用户的业务数据;如果协议域标识为压缩格式,则提取PPP数据帧的数据域,进行解压缩,将解压缩之后的数据作为用户的业务数据。4)提取到用户的业务数据之后,封装在GRE协议中,将GRE协议的上层协议类型设为IP类型,保留GRE层的grekey。GRE层以下的各层内容复制接收的原始数据包的GRE层以下的网络层和链路层等。5)将封装完的用户的业务数据发送出去。6)检查GRE节点的缓存链表中是否存在缓存节点。如果存在并且缓存节点的包序号为处理完的包序号加1,则转至3)继续处理;如果不存在或者缓存节点的包序号不等于处理完的包序号加1,则转至2)继续接收数据。对每个步骤的详细操作如下:1)初始化包含GRE节点的哈希表。初始化首先申请一段空闲内存,用于初始化包含GRE节点的哈希表。一个GRE节点包含源IP地址、目的IP地址、grekey、处理完的包序号和缓存链表,其中以源IP地址、目的IP地址和grekey作为关键字。对于同一个用户,grekey唯一,但上行数据的源IP对应下行数据的目的IP,上行数据的目的IP对应下行数据的源IP,因此建立两个GRE节点。同一个用户的数据包含上行流和下行流,在处理时会建立两个GRE,分别为两个方向。2)接收A10接口数据包,解析数据,查询GRE节点的哈希表。如果没有对应的GRE节点,则新建GRE节点,进入3)继续处理。如果已经存在,查询当前包是否是已处理完的数据包的下一个包,如果不是则缓存在GRE节点的链表上,返回步骤2)接着接收数据;如果当前包是已处理完的数据包的下一包,则进入3)继续处理。3)处理A10数据。在数据包的PPP协议负载中循环搜索以0x7e为起始标志和结束标志的PPP数据帧。提取到一个完整的PPP数据帧之后,进行解压缩,获取用户的业务数据。4)提取到用户的业务数据之后,封装在GRE协议中,GRE协议层以下依旧使用接收到的原始数据包的GRE层以下的各层内容。5)数据包封装完成之后,将数据发送出去。在步骤1)A10接口数据的网络层包含源IP地址和目的IP地址,GRE层包含grekey和包序号。grekey用来标识隧道内单个的业务流,属于同一个用户的业务流数据报文使用同一个grekey值来封装。每个包在处理完成之后会将该包的序号更新至GRE节点中的处理完的包序号值。缓存链表用于接收的用户数据包乱序时的缓存排序。此时步骤1)对于用户的上行数据,源IP地址为PCF的地址,目的IP地址为PSDN的地址;对于下行数据,正好相反。在步骤2)新建GRE节点时,将数据包的网络层的源IP和目的IP赋值给GRE节点的源IP和目的IP,将GRE层的grekey和包序号赋值给GRE节点的grekey和处理完的包序号。在步骤3)每一个PPP数据帧均是以一个标志字节起始和结束的,该字节为0x7e。在步骤3)PPP数据帧的压缩算法一般为MPPC、VJ压缩算法。解压缩算法可参考MPPC、VJ压缩算法实现。在步骤3)用户的业务数据通常为一个完整的IP包。在步骤4)GRE层以下的各层内容包含网络层和链路层等。一种A10接口数据转换为骨干网VPN数据的系统,包含数据接收模块、数据包排序模块、数据解析模块、数据封装模块及发送模块。数据包排序模块按照接收包的序号完成数据包的排序,使后面的数据解析有序进行。数据解析模块实现解析A10接口的数据,完成数据的解压缩。数据封装模块负责将提取出来的用户的业务数据封装为骨干网的VPN数据的格式。下面结合附图,进一步详细描述本发明的实施例:图1是A10接口数据转VPN数据系统所处网络位置示意图。图1中,将CDMAxa02000核心网中PCF和PSDN设备之间的数据镜像一份给A10接口数据转VPN数据系统。A10接口数据转VPN数据系统接收数据之后进行图4中的处理流程,实现将A10接口数据转换为VPN数据格式。图2是GRE节点及哈希表的组织形式。GRE节点包含了源IP地址、目的IP地址、grekey、处理完的包序号和缓存链表等信息。哈希表用于GRE节点的快速查找、添加和删除操作,以源IP地址、目的IP地址和grekey作为关键字。图3是封装完的VPN数据格式。其中,链路层和网络层复制原始数据包中的信息。用户的业务数据通过数据处理得到。GRE层的各字段的具体含义可参考GRE协议的相关RFC文档。GRE层的各字段的值设置为:将K设为1,表示grekey域的存在;将Protocolxa0Type设为0x0800,表示上层类型为IP;grekey保留原始数据包中的值;其余字段均设为0。图4是A10接口数据转换为VPN数据的处理流程图。实施过程如下:(1)系统启动初始化之后,开始接收数据。(2)接收到数据包之后,解析数据包中的网络层的源IP和目的IP,解析GRE层的grekey和包序号值。以源IP、目的IP和grekey作为关键字在哈希表中查询GRE节点。如果不存在,新建GRE节点,转至步骤(4)进行处理;如果存在,转至步骤(3)进行处理。(3)若比较GRE节点上的已处理完的包序号的值加上1和接收到的包序号的大小。如果前者小于后者,说明网络传输数据包出现乱序,将接收的数据包暂时缓存在GRE节点的缓存链表上,返回步骤(2)继续接收新的数据包;如果前者大于后者,说明网络传输出现重传等情况,丢弃当前接收的数据包,不予处理,返回步骤(2)继续接收新的数据包;如果前者等于后者,说明网络传输正常,转至步骤(4)继续处理。(4)解析数据包的GRE层之上的信息,提取PPP负载。在PPP负载中以0x7e为标志搜索PPP数据帧。提取到一个完整的PPP数据帧之后,查看PPP数据帧的协议域。如果协议域标识为IP,则直接提取PPP数据帧的数据域,作为用户的业务数据;如果协议域标识为MPPC、VJ等压缩格式,则提取PPP数据帧的数据域,进行解压缩,将解压缩之后的数据作为用户的业务数据。(5)提取到用户的业务数据之后,按照图3的VPN数据格式进行封装。(6)发送封装之后的数据包,释放数据空间。将数据包的包序号更新至GRE节点中的已处理完的包序号。(7)检查GRE节点的缓存链表中是否存在缓存节点。如果存在并且缓存节点的包序号为之前处理完的包序号加1,则转至步骤(4)继续处理;如果不存在或者缓存节点的包序号不等于之前处理完的包序号加1,则转至步骤(2)继续接收数据,并在数据排序模块辅助完成。图5是本发明的A10接口数据转换为VPN数据的系统的结构示意图,适用于上述方法,其包含数据接收模块、数据包排序模块、数据解析模块、数据封装模块及发送模块。所述数据接收模块实现实时接收网卡捕获到的数据。所述数据包排序模块负责根据接收包的序号进行数据包的排序,如果有序则继续处理数据,如果乱序则暂时缓存数据。所述数据解析模块实现解析PPP数据域,完成解压缩,得到用户的业务数据。所述数据封装模块负责将提取出的用户的业务数据封装为骨干网的VPN数据的格式。所述发送模块实现将转换完成的VPN数据输出,将数据提供给后续业务系统。